// r 读文件   r+ 读取并写入  rs同步读取文件并忽略缓存
// w写入文件 不存在则创建  w+读取并写入
// a追加写入  a+读取并追加写入不存在则创建 
// fs.open  fs.read   fs.write
let fs = require('fs')
let path = require('path')
// fs.read()
function copy(source, target) {
  let buffer = Buffer.alloc(3)
  let pos = 0
  fs.open(source, 'r', (err, rfd)=>{
    fs.open(target, 'w', (err, wfd) => {

      function next() {
        fs.read(rfd, buffer, 0, 3, pos, (err, bytesRead)=>{
          if(bytesRead > 0) {  // 读取到的内容长度
            pos+=bytesRead
            fs.write(wfd, buffer, 0, bytesRead,(err, written)=>{
              next()
            })
          }else{
            // 去读完毕
            fs.close(rfd, ()=>{})
            fs.close(wfd, ()=>{})
          }
        })
      }
      next()
    })
  })
}
copy(path.resolve(__dirname, '../test/l.json'), path.resolve(__dirname, '../test/2.json'))